package com.example.pdf.util;

import com.itextpdf.io.font.constants.StandardFonts;
import lombok.Data;
import lombok.ToString;

/**
 * 文字水印
 *
 * @author mrcode
 */
@Data
@ToString
public class TextWatermark {
    /**
     * 文字水印,多行可使用 \n 换行
     */
    private String text;

    /**
     * 透明度 0-1（完全透明-不透明）
     */
    private float opacity = 0.5F;
    /**
     * 颜色：只支持 RGB; 为空则默认为黑色；比如 0,0,0;
     * <pre>
     *     建议使用 rgba 提供用户选择，后面的 a 的数值用于透明度的设置，展示的颜色和水印效果类似
     * </pre>
     */
    private String color;

    /**
     * 旋转角度
     */
    private float radAngle = 0F;

    /**
     * 字体文件路径；如果为空，则使用标准的英文字体 StandardFonts.HELVETICA
     * <pre>
     *     支持： afm、pfm、ttf、otf、woff、woff2
     * </pre>
     *
     * @see StandardFonts#HELVETICA
     */
    private String fontPath;
    /**
     * 字号大小，
     */
    private int fontSize = 30;

    /**
     * 文本平铺方式： 1：文本水平垂直居中 2：页面平铺
     */
    private int tileMode = 1;
    /**
     * 页面平铺：文字水平间隔；默认为 50
     */
    private Integer pageModeOfHorizontalInterval;
    /**
     * 页面平铺：文字垂直间隔; 建议至少为字体大小（默认为字体大小），如果有旋转，则合理的高度是 (文字个数 * 文字高度)
     */
    private Integer pageModeOfVerticalInterval;
}

